/*—————————————————————————————————————————————————————————— 公共状态redux的reducer函数 ——————————————————————————————————————————————————————————*/

// 引入内容区
import { createSlice } from '@reduxjs/toolkit' // redux模块片段方法引入
import { initialState } from './initialState' // 引入默认状态
import reducers from './action' // 引入action方法

/**
 * @redux模块片段createSlice
 * @参数为一个对象需按模板传入
 * @name此模块的名称
 * @initialState为一个装载最初所有需要处理数据的对象
 * @reducers是一个对象其成员为action的同步方法
 * @extraReducers是一个函数用于处理异步action_若是没有异步方法则不用使用此参数
 */
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
const counterSlice = createSlice({
  name: 'publicStore', // 为字符串形式内容按个人兴趣来
  initialState, // 名称必须为initialState，其内容为曾经redux中默认state
  reducers, // 名称必须为reducers，将曾经redux中所有同步action进行用对象的形式进行集体传入，且只接受同步的acton
})

// 数据导出区
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// 将action同步方法进行导出方便使用
export const { updataRouter, changeLayout, setOverallLoading, setUserMenu } =
  counterSlice.actions

// 默认导出此模块的reducer方便在store文件中进行合并绑定
export default counterSlice.reducer
